#include "arch.h"
#include "fp_GOLDILOCKS.h"

namespace GOLDILOCKS {

/* Curve GOLDILOCKS */

#if CHUNK==16

#error Not supported

#endif

#if CHUNK==32

using namespace B448_29;

// Base Bits= 29
const BIG Modulus= {0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FDFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFF};
const BIG R2modp= {0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
const chunk MConst= 0x1;
//const int BTset= 224;

#endif

#if CHUNK==64

using namespace B448_58;

// Base Bits= 58
const BIG Modulus= {0x3FFFFFFFFFFFFFFL,0x3FFFFFFFFFFFFFFL,0x3FFFFFFFFFFFFFFL,0x3FBFFFFFFFFFFFFL,0x3FFFFFFFFFFFFFFL,0x3FFFFFFFFFFFFFFL,0x3FFFFFFFFFFFFFFL,0x3FFFFFFFFFFL};
const BIG R2modp= {0x200000000L,0x0L,0x0L,0x0L,0x3000000L,0x0L,0x0L,0x0L};
const chunk MConst= 0x1L;
//const int BTset=224;

#endif

}
